/*
 * Auto.cpp
 *
 *  Created on: Feb 23, 2012
 *      Author: Pleun Willemsen
 */

#include "Auto.h"


void Auto::run(){


	//Als een auto over mag steken, dan wordt de kruising even gelocked.

	kruising.lock();
	aantalAutos[rijdrichting]++;

	cout << "   --> Auto "<< getName() << " komt aangereden uit richting: "<< autosUitRichting[rijdrichting].getName() << " en moet wachten." << endl;

	//De rest van de auto's uit deze richting moeten wachten op een signal van de Agent
	autosUitRichting[rijdrichting].wait(kruising);

	cout << "   <-- Auto "<< getName() << " is overgestoken uit de richting  " << autosUitRichting[rijdrichting].getName() << endl;

	//Tijd om over te steken.
	Thread:msleep(150);
	//Kruising weer vrijgeven voor andere automobilisten.
	kruising.unlock();
	//Geef de agent een signal dat ik overgestoken ben.
	agent.signal();



}

